#include <stdio.h>
#include <signal.h>
#include <unistd.h>

void sig_handler (int n)
{
	printf ("unblock...%d\n", n);
	return;
}
int main (void)
{
	sigset_t  set, oset;
	int m;

	signal (2, sig_handler);
	//将信号集set初始化为空
	sigemptyset (&set);
	//将2号信号增加到集合中
	sigaddset (&set, 2);
	m = sigismember (&set, 2);

	//将set集合设置为进程的信号掩码集
	sigprocmask (SIG_SETMASK, &set, NULL);
	sleep (10);
	//解除对2号新号的阻塞
	sigprocmask (SIG_UNBLOCK, &set, NULL);

	//将2信号从集合中删除
	sigdelset (&set, 2);
	return 0;
}

